package com.lingyuan.discounts.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lingyuan.common.core.domain.vo.cart.CartItemVo;
import com.lingyuan.common.core.domain.vo.sms.ComputeVo;
import com.lingyuan.common.core.domain.vo.sms.CouponMemberVo;
import com.lingyuan.common.core.domain.vo.sms.CouponSkuIdsVo;
import com.lingyuan.common.core.domain.vo.sms.CouponVo;
import com.lingyuan.discounts.domain.Coupon;
import com.lingyuan.discounts.domain.request.CouponRequest;

import java.util.List;

/**
 * @Author: Li Hao Xuan
 * @name: CouponService
 * @Description TODO
 */
public interface CouponService extends IService<Coupon> {
    List<Coupon> findCouponList(CouponRequest couponRequest);

    void addCoupon(Coupon coupon);


    void updCoupon(Coupon coupon);

    void delCoupon(Long id);

    /**
     * 优惠券计算商品价格
     * @return CouponSkuIdsVo
     */
    CouponSkuIdsVo findCouponSkuIdsVo(ComputeVo computeVo);

    Coupon findCouponId(Long couponId);

    List<CouponMemberVo> findSkuMinPrice(String skuIds);

    void updUseCount(Long id);
}
